package 集合.迭代器;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.ListIterator;

public class Test2 {
    public static void main(String[] args) {
        //（1）创建集合对象
        List list=new ArrayList();
        //（2）创建元素对象
        //（3）将元素对象添加到集合对象中
        list.add("计算机");
        list.add("电脑");
        list.add("手机");
        list.add("服务器");
        System.out.println(list);//打印list集合内容
        System.out.println("-----------------------");
        //（4）遍历集合，并打印
            //创建迭代器对象：步骤如下
            //（1）根据集合对象获取其对象的“列表迭代器对象”
        ListIterator it=  list.listIterator();//创建列表迭代器
            //（2）判断迭代器中是否有元素
        while(it.hasNext()){    //测试boolean hasNext():如果仍有元素可以迭代，则返回true
            //测试列表迭代器在集合遍历的同时添加，删除等操作。但必须通过调用列表迭代器的方法来实现。
            //案例：如果集合中有字符串”电脑“，就在其后添加一个新的字符串：“Java”
        String s1=(String)(it.next());//向下转型
            if ("电脑".equals(it.next())) {//这样写可以有效避免空指针,判断”电脑“字符串是否与s1相同，若相同则返回true
                //list.add("Java");//这样写，运行时会报错
                it.add("Java");//必须通过调用列表迭代器的方法来实现。
            }
            System.out.println(s1);
        }
        System.out.println("-----------------------");
        System.out.println(list);
    }
}
